package com.wanmait.happyheating.controller;


import com.baomidou.mybatisplus.extension.api.R;
import com.github.pagehelper.PageInfo;
import com.wanmait.happyheating.pojo.Config;
import com.wanmait.happyheating.service.ConfigService;
import com.wanmait.happyheating.util.Result;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * 项配置相关的Controller,主要负责项配置查询、增加等功能
 * @author 陈宗 2021-5-17
 */
@RestController
@RequestMapping("/manage")
public class AdminConfigController {

    @Resource
    private ConfigService configService;

    /**
     * @author 陈宗 2021-5-17
     *添加项配置(标题、默认值、描述、配置的值)
     * */
    @PostMapping("/addConfig")
    public Result addConfig(@RequestBody Config config)
    {
        configService.save(config);
        return Result.success("添加成功");
    }

     /**
     * @author 陈宗 2021-5-17
     *查询所有项配置(标题、默认值、描述、配置的值)
     * */
    @PostMapping("findConfig")
    public Result findConfig(@RequestBody Config config,Integer pageNum) {
        //项配置的id为0时,设置项配置的id为null
        if(config.getId()==0)
        {
            config.setId(null);
        }
        //第几页为null时,显示第一页
        if (pageNum == null) {
            pageNum = 1;
        }
        PageInfo<Config> pageInfo = configService.findPageConfing(pageNum,config);
        return Result.success(pageInfo);
    }


    /**
     * @author 陈宗 2021-5-25
     * 通过config对象查询所有的项配置(设为默认值)
     */
    @GetMapping("{id:\\d+}")
    public Result defaultValue(@PathVariable Integer id){
        configService.getById(id);
        return Result.success("设置成功");
    }

    /**
     *@author 陈宗 2021-5-17
     *根据项配置id进行修改的功能(标题、默认值、描述、配置的值)
     * */
    @PostMapping("/upadateConfig")
    public Result upadateConfig(@RequestBody Config config) {
        configService.updateById(config);
        return Result.success("修改成功");
    }

    /**
    * 陈宗 2021-5-24
    * 根据相配置id进行删除功能(标题、默认值、描述、配置的值)
    * */
    @PostMapping("/deleteConfig/{id:\\d+}")
    public Result deleteConfig(@PathVariable Integer id) {
        configService.removeById(id);
        return Result.success("删除成功");
    }


}
